package com.lv.service.bean

import android.os.Parcelable
import androidx.annotation.Keep
import com.lv.service.net.CategoryPeriodsBody
import com.lv.service.room.company.CompanyItemBean
import kotlinx.parcelize.Parcelize

/**
 * 作者： ygx
 * 创建日期：2022/8/11 11:03 PM
 * 签名： 天行健，君子以自强不息；地势坤，君子以厚德载物。
 * -    _              _           _     _   ____  _             _ _
 * -   / \   _ __   __| |_ __ ___ (_) __| | / ___|| |_ _   _  __| (_) ___
 * -  / _ \ | '_ \ / _` | '__/ _ \| |/ _` | \___ \| __| | | |/ _` | |/ _ \
 * - / ___ \| | | | (_| | | | (_) | | (_| |  ___) | |_| |_| | (_| | | (_) |
 * -/_/   \_\_| |_|\__,_|_|  \___/|_|\__,_| |____/ \__|\__,_|\__,_|_|\___/
 *
 * You never know what you can do until you try !
 * ----------------------------------------------------------------
 *
 */
@Parcelize
@Keep
data class CompanyBean(
    var counts: Int,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<CompanyItemBean>?,
) : Parcelable

@Parcelize
@Keep
data class CompanyPageBean(
    var counts: Int,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<CompanyPageItemBean>?,
) : Parcelable

@Parcelize
@Keep
data class CompanyPageItemBean(
    var id: String,
    var cpyid: String,
    val name: String,
    val logo: String? = null,
    var bnames: String? = null,
    var phone: String? = null,
    var companytel: String? = null,
    val category: CategoryMoreBean? = null,
    var selected: Boolean = false,
) : Parcelable

@Parcelize
@Keep
data class CompanyPageDataBean(
    var counts: Int,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<CompanyDataBeanItem>?,
) : Parcelable

@Parcelize
@Keep
data class CategoryPeriodsDataBean(
    var counts: Int,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<CategoryPeriodsBody>?,
//    val updated: Long,
) : Parcelable


@Parcelize
@Keep
data class ClientPageDataBean(
    var counts: Int,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<ClientItemBean>?,
    val deptTotal: Long?,
) : Parcelable


@Parcelize
@Keep
data class ContactUPBean(
    val name: String,
    var tel: String,
    var image: String?,
) : Parcelable

@Parcelize
@Keep
data class ContactBean(
    var show: String?,
    var tel: String? = null,//联系人号码
    var logo: String? = null,
    val name: String? = null,
) : Parcelable

@Parcelize
@Keep
data class CertificationBean(
    var image: String,
    var name: String,
) : Parcelable

@Parcelize
@Keep
data class DisplayFacBean(
    var image: String? = "",
    var type: String? = "",
    var imageFirst: String? = "",
    val width: String? = "",
    val height: String? = "",
//    var border: String? = "",
) : Parcelable

@Parcelize
@Keep
data class DisplayPro(
    val type: String? = null,//单选 多选
    val displayPro: List<NameBean>?,
) : Parcelable

@Parcelize
@Keep
data class BperiodsBean(
    val bprovince: String? = null,
    val periods: String? = null,
) : Parcelable

@Parcelize
@Keep
data class NameBean(
    val name: String,
) : Parcelable


@Parcelize
@Keep
data class CategoryInfoBean(
    val bname: String,
    val spuList: List<SpuListBean>?,
) : Parcelable

@Parcelize
@Keep
data class CategoryMoreBean(
    val type: String? = null,/// 0单选 1多选
    val category: List<CategorySubBean>?,
) : Parcelable

@Parcelize
@Keep
data class CategorySubBean(
    val name: String,
    val fcaid: String,
    val secaid: String,
) : Parcelable

@Parcelize
@Keep
data class SpuListBean(
    var id: String,
    var name: String,
    var bname: String,
    var image: String,
    var cpname: String,
    var price: String,
    var wantnum: String,
    var type: String,
    val videoimage: String,
    val videotime: String,
) : Parcelable

@Parcelize
@Keep
data class CompanyDataBeanItem(
    var bprovince: String,
    var caption: String,
    val category: CategoryMoreBean,
    val cpyid: String,
    val created: Long,
    var display: List<DisplayFacBean>,
    val id: String,
    var identification: String,
    val introduction: String,
    val isaudit: String,//0 下架 1 待审 不可编辑 2 正常上架
    val isnew: String,
    val logo: String,
    val name: String,
    var periods: String,
    val updated: Long,
    val uploadSaler: String,
    val uploadSalerTxaccid: String,
    var url: String
) : Parcelable


@Parcelize
@Keep
data class ClientItemBean(
    var id: String,
    var logo: String? = null,
    val cpyid: String? = null,
    var name: String? = null,
    var bprovince: String? = null,
    var periods: String? = null,
    var category: CategoryMoreBean? = null,
    val introduction: String? = null,
    var identification: String? = null,
    val url: String? = null,
    var caption: String? = null,
    var displayPro: String? = null,
    var display: List<DisplayFacBean>?,
    var uploadSaler: String? = null,
    var uploadSalername: String? = null,
    var uploadSalerTxaccid: String? = null,
    var isaudit: String? = null,
    var islisted: String,//0 下线 1 上线 2 审核中
    var isnew: String? = null,
    var tels: List<String>? = null,
    var provinceComCards: List<ProvinceComCardsBean>? = null,
//    var isspecially: String? = null,
    val created: Long?,
    val updated: Long?,
    var isSelected: Boolean = false,
    var isexpire: String? = null,//0免费 1 付费
    var conclude: String? = null,//1  已成交  0 未成交
    var badge: String? = null,//0  无  1 访  2 服
    var isexpiration: String?,//0 未过期  1已过期
    var condition: String? = null,
    var visitname: String? = null,
    var visittime: Long? = null,
    var newvisittime: Long? = null,
    var start: Long? = null,//开始时间
    var end: Long? = null,//结束时间
    var conditiontime: Long? = null,
    var addtime: Long? = null,

    ) : Parcelable

@Parcelize
@Keep
data class FindCountBean(
    var riskdown: Int,
    var up: Int,
    var down: Int,
) : Parcelable


@Parcelize
@Keep
data class CompanyItemsBean(
    var counts: Int,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<CompanyItemNewBean>?,
) : Parcelable


@Parcelize
@Keep
data class CompanyItemNewBean(
    var id: String,
    var name: String? = null,
    var logo: String? = null,
    val address: String? = null,
    val created: Long?,
    val fcaid: Int?,
    val secaid: Int?,
    val caption: String? = null,
    val companytel: String? = null,
    val contact: List<ContactBean>? = null,
    val attentionnum: Int?,
    val fcname: String? = null,
    val secname: String? = null,
    var display: String? = null,
    var province: String? = null,
    var city: String? = null,
    var area: String? = null,
    var bnames: String? = null,
    var periods: String? = null,
    val introduction: String? = null,
    val fintroduction: String? = null,
    val newtemplate: String? = null,
    var isexpire: String? = null,//0免费 1 付费
    val isspecially: String? = null,
    val txaccid: String? = null,
    val access: Int? = null,
    val callnum: Int? = null,
    val totalsum: Int? = null,
    val spuListssize: Int? = null,
    var bprovince: String? = null,

    var isSelected: Boolean = false,
) : Parcelable


@Parcelize
@Keep
data class ApplyCashListBean(
    var counts: Int?,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<ApplyCashBean>?,
) : Parcelable

@Parcelize
@Keep
data class ApplyCashBean(
    var id: String?,
    var userid: String?,
    var phone: String?,
    var approveid: String?,
    var date: String?,
    var name: String?,
    var price: String?,
    var created: Long?,
    var attachment: String?,
    var tradingtime: String?,
    var dispose: String?,// 0 审核中 1 已通过 2 未通过
    var refused: String?,

    ) : Parcelable


@Parcelize
@Keep
data class ConditionBean(
    var hotspu: String?,//0未设置 1 已设置
    var custom: String?,
    var reqspu: String?,
) : Parcelable


@Parcelize
@Keep
data class CompanyCertificatePage(
    var counts: Int?,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<CompanyCertificateBean>?,
) : Parcelable

@Parcelize
@Keep
data class CompanyCertificateBean(
    var id: String?,
    var bg: String?,
    var xb: String?,
    var bgW: Int?,
    var bgH: Int?,
    var styleIndex: Int?,
    var cpNameRect: CompanyCertificateChildBean?,
    var nameRect: CompanyCertificateChildBean?,
    var timeRect: CompanyCertificateChildBean?,
) : Parcelable

@Parcelize
@Keep
data class CompanyCertificateChildBean(
    var isBoldFont: Int?,
    var numberOfLine: Int?,
    var w: Int?,
    var x: Int?,
    var h: Int?,
    var y: Int?,
    var maxFont: Int?,
    var txtColor: String?,
) : Parcelable

@Parcelize
@Keep
data class CompanyCouponStaticPage(
    var counts: Int?,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<CompanyCouponItemBean>?,
) : Parcelable

@Parcelize
@Keep
data class CompanyCouponItemBean(
    var id: String?,
    var name: String?,
    var status: String?,
    var verificationtime: Long?,
    var couponsid: String?,
    var verificationcode: String?,
    var userid: String?,
    var username: String?,
    var userlogo: String?,
    var userphone: String?,
    var consumption: Int?,
    var drawname: String?,
    var cpyid: String?,
    var date: String?,
    var price: Int?,
    var created: Long?,
    var updated: Long?,
    var endtime: Long?,
    val totalprice: String?,
    var displaydate: String?,
) : Parcelable

@Parcelize
@Keep
data class EwmsBean(
    var ewm: String?,
    var name: String?,
) : Parcelable

@Parcelize
@Keep
data class DisplayFacListBean(
    var displayFac: List<DisplayFacBean>?,
) : Parcelable

@Parcelize
@Keep
data class ClientVisitPage(
    var counts: Int?,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<ClientVisitBean>?,
) : Parcelable

@Parcelize
@Keep
data class ClientVisitBean(
    var id: String?,
    var cpyid: String?,
    var name: String?,
    var logo: String?,
    var remark: String?,
    var condition: String?,
    var images: List<String>?,
    var uploadSaler: String?,
    var uploadSalername: String?,
    var type: String?,
    var created: Long?,
    var updated: Long?,
    var time: Long?,
    var visittime: Long?,
    var province: String?,
    var periods: Int?,
    var start: Long?,
    var end: Long?,

    ) : Parcelable


@Parcelize
@Keep
data class ClientVisitStatisticPage(
    var counts: Int?,
    val page: Int,
    val pagesize: Int,
    val pages: Int,
    val items: List<ClientVisitStatisticBean>?,
    val attached: ClientAttachedBeanBean?,
) : Parcelable

@Parcelize
@Keep
data class ClientVisitStatisticBean(
    var name: String?,
    var userid: String?,
    var created: Long?,
    var receiptnum: Int?,
    var cashbacknum: Int?,
    var addwxnum: Int?,
    var consultnum: Int?,

    ) : Parcelable

@Parcelize
@Keep
data class ClientAttachedBeanBean(
    var cashbacknum: Int?,
    var addwxnum: Int?,
    var consultnum: Int?,

    ) : Parcelable


@Parcelize
@Keep
data class ProvinceComCardsBean(
    var id: String?,
    var border: String?,
    var isspecially: String?,
    var area: String?,
    var province: String?,
    var cpyid: String?,
    var created: Long?,

    ) : Parcelable

@Parcelize
@Keep
data class AddressDetailsBean(
    var province: String?,
    var city: String?,
    var area: String?,
    var prefecture: String?,
    var address: String?,
    var type: String?,

    ) : Parcelable

@Parcelize
@Keep
data class CompanyMiniBean(
    var id: String?,
    var cpyid: String?,
    var phone: String?,
    var url: String?,
    var status: String?,//0 未开通 1 审核中 2 研发中 3 已开通 4 已过期
    val created: Long?,
    val end: Long?,
    var condition: CompanyConditionBean?,
) : Parcelable

@Parcelize
@Keep
data class CompanyConditionBean(
    var wxsft: CompanyConditionItemBean?,
    var appsft: CompanyConditionItemBean?,
    var zfbsft: CompanyConditionItemBean?,
    var wx: CompanyConditionItemBean?,
    var appB2b: CompanyConditionItemBean?,
    var wxFiling: CompanyConditionItemBean?,
) : Parcelable


@Parcelize
@Keep
data class CompanyConditionItemBean(
    var content: String?,
    var out_request_no: String?,
    var status: String?,//0 审核中 1 通过 2 拒绝
    var created: Long?,
) : Parcelable



